<?php
include_once 'user.php';
include_once 'panier.php';
include_once 'database_manager.php';

class UserManager
{
    // Vérifie si un utilisateur (client ou producteur) existe en base
    public static function isExist($login, $motdepasse, $type)
	{
        if($type == "Producteur") {
            $tab = "tproducteur";
        }
        else {
            $tab = "tconsommateur";
        }

		$co = DataBaseManager::getInstance();
		$request = "SELECT 1 FROM ".$tab." WHERE LOGIN = '".$login."' AND PASSWORD = '".$motdepasse."'";
		$req = $co->execRequete($request);
		$err = "";
		
		if(!empty($err)){
			echo $err;
			// Faire un rapport d'erreur
		}
		$donne = mysqli_fetch_assoc($req);
		if(isset($donne['1']))
			$val = true;
		else
			$val = false;
		
		$co->libereResultatRequete($req);
		return $val;
	}

    // Inscription d'un nouvel utilisateur
    public static function inscription($params)
	{
		$co = DataBaseManager::getInstance();

        $typeUser = $params['type'];

        if($typeUser == "Producteur"){
		    $request = "INSERT INTO tproducteur(NOM_SOCIETE, NUMERO_TELEPHONE, LOGIN, PASSWORD, ADRESSE, VILLE) VALUES ('".$params['societe']."','".$params['numTel']."','".$params['login']."','".$params['password']."','".$params['adresse']."','".$params['ville']."')";
		}
        else{
            $request = "INSERT INTO tconsommateur(LOGIN, PASSWORD, ADRESSE, VILLE) VALUES ('".$params['login']."','".$params['password']."','".$params['adresse']."','".$params['ville']."')";
        }

        $req = $co->execRequete($request);
		$err = "";
		
		if(!empty($err)){
			echo $err;
			// Faire un rapport d'erreur
		}
		
		$co->libereResultatRequete($req);
	}

    // Suppression de l'utilisateur en base
	public static function desinscription($type, $login)
	{
		$co = DataBaseManager::getInstance();
        
        if($type == "Producteur"){
            $tab = "tproducteur";
        }
        else{
            $tab = "tconsommateur";
        }

		$request = "DELETE FROM ".$tab." WHERE LOGIN_CONSOMMATEUR = '".$login."'";

		$req = $co->execRequete($request);
		$err = "";
		
		if(!empty($err)){
			echo $err;
			// Faire un rapport d'erreur
		}
		
		$co->libereResultatRequete($req);
	}

    // Initialisation d'un utilisateur
	public static function init($typeUser, $login)
	{
        $co = DataBaseManager::getInstance();

        $params = array();

        if($typeUser == "Producteur"){
            $request = "select NOM_SOCIETE as societe, NUMERO_TELEPHONE as tel, LOGIN as login, ADRESSE as adresse, VILLE as ville FROM tproducteur WHERE LOGIN = '".$login."'";
            $req = $co->execRequete($request);

            while($data = mysqli_fetch_assoc($req))
            {
                $params["type"] = $typeUser;
                $params["login"] = $data["login"];
                $params["adresse"] = $data["adresse"];
                $params["ville"] = $data["ville"];
                $params["societe"] = $data["societe"];
                $params["numTel"] = $data["tel"];
            }
        }
        else{
            $request = "select LOGIN as login, ADRESSE as adresse, VILLE as ville FROM tconsommateur WHERE LOGIN = '".$login."'";
            $req = $co->execRequete($request);

            while($data = mysqli_fetch_assoc($req))
            {
                $params["type"] = $typeUser;
                $params["login"] = $data["login"];
                $params["adresse"] = $data["adresse"];
                $params["ville"] = $data["ville"];
            }
        }

        // Création de l'utilisateur
        $user = new User($params);
        $panier = new Panier();
        session_start();
        $_SESSION["current_user"] = serialize($user);
        $_SESSION["panier"] = serialize($panier);

        $err = "";
		
		if(!empty($err)){
			echo $err;
			// Faire un rapport d'erreur
		}
		
		$co->libereResultatRequete($req);
    }
}

?>
